package Controle;

/*
DROP SCHEMA IF EXISTS `speed`;
 CREATE SCHEMA `speed` ;
 USE `speed`;
 CREATE TABLE RTCF (
  idRTCF INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  origem VARCHAR(2) NULL,
  destino VARCHAR(2) NULL,
  taxa FLOAT NULL,
  PRIMARY KEY(idRTCF)
);

CREATE TABLE Pessoa (
  id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  nome VARCHAR(50) NULL,
  telefone VARCHAR(20) NULL,
  endereco VARCHAR(50) NULL,
  CEP VARCHAR(15) NULL,
  numEnd VARCHAR(10) NULL,
  bairro VARCHAR(30) NULL,
  estado VARCHAR(3) NULL,
  cidade VARCHAR(40) NULL,
  PRIMARY KEY(id)
);

CREATE TABLE Empresa (
  idEmpresa INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  nome VARCHAR(50) NULL,
  fantasia VARCHAR(40) NULL,
  foneFixo VARCHAR(20) NULL,
  celular VARCHAR(20) NULL,
  CNPJ VARCHAR(20) NOT NULL UNIQUE,
  IE VARCHAR(20) NULL,
  endereco VARCHAR(50) NULL,
  Contato VARCHAR(50) NULL,
  CEP VARCHAR(15) NULL,
  cidade VARCHAR(30) NULL,
  UF VARCHAR(2) NULL,
  bairro VARCHAR(30) NULL,
  PRIMARY KEY(idEmpresa)
);

CREATE TABLE TipoConta (
  idtipo INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  TipoConta VARCHAR(15) NULL,
  PRIMARY KEY(idtipo)
);

CREATE TABLE Cliente (
  idCliente INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  telFax VARCHAR(20) NULL,
  email VARCHAR(40) NULL,
  outrasInf TEXT NULL,
  taxa FLOAT NULL,
  valorFixo FLOAT NULL,
  desconto FLOAT NULL,
  nomeFaturante VARCHAR(50) NULL,
  PRIMARY KEY(idCliente)
);

CREATE TABLE TipoMercadoria (
  idTipo INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  nome VARCHAR(30) NULL,
  PRIMARY KEY(idTipo)
);

CREATE TABLE Veiculo (
  idVeiculo INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  Proprietario INTEGER UNSIGNED NOT NULL,
  placa VARCHAR(8) NOT NULL UNIQUE,
  cidade VARCHAR(30) NULL,
  UF VARCHAR(3) NULL,
  chassi VARCHAR(20) NULL,
  renavam VARCHAR(20) NOT NULL UNIQUE,
  TipoContaCarroceria VARCHAR(20) NULL,
  anoFabricacao VARCHAR(4) NULL,
  Modelo VARCHAR(20) NULL,
  Fabricante VARCHAR(20) NULL,
  cor VARCHAR(10) NULL,
  PRIMARY KEY(idVeiculo),
  INDEX Veiculo_FKIndex1(Proprietario),
  FOREIGN KEY(Proprietario)
    REFERENCES Pessoa(id)
      ON DELETE CASCADE
      ON UPDATE NO ACTION
);


CREATE TABLE PessoaFisica (
  idPessoaFisica INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  Pessoa_id INTEGER UNSIGNED NOT NULL,
  CPF VARCHAR(20) NOT NULL UNIQUE,
  ufRG VARCHAR(2) NULL,
  RG VARCHAR(20) NULL,
  orgExRG VARCHAR(10) NULL,
  PRIMARY KEY(idPessoaFisica, Pessoa_id),
  INDEX PessoaFisica_FKIndex2(Pessoa_id),
  FOREIGN KEY(Pessoa_id)
    REFERENCES Pessoa(id)
      ON DELETE CASCADE
      ON UPDATE NO ACTION
);


CREATE TABLE Conta (
  idConta INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  TipoConta_idtipo INTEGER UNSIGNED NOT NULL,
  documento VARCHAR(40) NULL,
  emissao DATE NULL,
  localCobranca VARCHAR(40) NULL,
  PRIMARY KEY(idConta),
  INDEX Conta_FKIndex1(TipoConta_idtipo),
  FOREIGN KEY(TipoConta_idtipo)
    REFERENCES TipoConta(idtipo)
      ON DELETE CASCADE
      ON UPDATE NO ACTION
);

CREATE TABLE Mercadoria (
  idMercadoria INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  TipoMercadoria_idTipo INTEGER UNSIGNED NOT NULL,
  naturezaCarga VARCHAR(40) NULL,
  peso FLOAT NULL,
  quantidade INTEGER UNSIGNED NULL,
  notaFiscal VARCHAR(30) NULL,
  especie VARCHAR(20) NULL,
  valorMercadoria FLOAT NULL,
  PRIMARY KEY(idMercadoria),
  INDEX Mercadoria_FKIndex1(TipoMercadoria_idTipo),
  FOREIGN KEY(TipoMercadoria_idTipo)
    REFERENCES TipoMercadoria(idTipo)
      ON DELETE CASCADE
      ON UPDATE NO ACTION
);

CREATE TABLE Funcionario (
  PessoaFisica_idPessoaFisica INTEGER UNSIGNED NOT NULL,
  PessoaFisica_Pessoa_id INTEGER UNSIGNED NOT NULL,
  login VARCHAR(20) NULL,
  senha VARCHAR(20) NULL,
  celular VARCHAR(20) NULL,
  dataNascimento DATE NULL,
  nivelAcesso INTEGER UNSIGNED NOT NULL,
  valorCaixa FLOAT NULL,
  PRIMARY KEY(PessoaFisica_idPessoaFisica, PessoaFisica_Pessoa_id),
  INDEX Funcionario_FKIndex2(PessoaFisica_idPessoaFisica, PessoaFisica_Pessoa_id),
  FOREIGN KEY(PessoaFisica_idPessoaFisica, PessoaFisica_Pessoa_id)
    REFERENCES PessoaFisica(idPessoaFisica, Pessoa_id)
      ON DELETE CASCADE
      ON UPDATE NO ACTION
);

CREATE TABLE ClienteFisico (
  PessoaFisica_idPessoaFisica INTEGER UNSIGNED NOT NULL,
  PessoaFisica_Pessoa_id INTEGER UNSIGNED NOT NULL,
  Cliente_idCliente INTEGER UNSIGNED NOT NULL,
  PRIMARY KEY(PessoaFisica_idPessoaFisica, PessoaFisica_Pessoa_id, Cliente_idCliente),
  INDEX ClienteFisico_FKIndex1(PessoaFisica_idPessoaFisica, PessoaFisica_Pessoa_id),
  INDEX ClienteFisico_FKIndex2(Cliente_idCliente),
  FOREIGN KEY(Cliente_idCliente)
    REFERENCES Cliente(idCliente)
      ON DELETE CASCADE
      ON UPDATE NO ACTION,
  FOREIGN KEY(PessoaFisica_idPessoaFisica, PessoaFisica_Pessoa_id)
    REFERENCES PessoaFisica(idPessoaFisica, Pessoa_id)
      ON DELETE CASCADE
      ON UPDATE NO ACTION
);

CREATE TABLE Juridico (
  Pessoa_id INTEGER UNSIGNED NOT NULL,
  Cliente_idCliente INTEGER UNSIGNED NOT NULL,
  CNPJ VARCHAR(20) NOT NULL UNIQUE,
  inscriEstadual VARCHAR(20) NULL,
  nomeFantasia VARCHAR(30) NULL,
  PRIMARY KEY(Pessoa_id, Cliente_idCliente),
  INDEX Juridico_FKIndex1(Pessoa_id),
  INDEX Juridico_FKIndex2(Cliente_idCliente),
  FOREIGN KEY(Cliente_idCliente)
    REFERENCES Cliente(idCliente)
      ON DELETE CASCADE
      ON UPDATE NO ACTION,
  FOREIGN KEY(Pessoa_id)
    REFERENCES Pessoa(id)
      ON DELETE CASCADE
      ON UPDATE NO ACTION
);

CREATE TABLE ContaApagar (
  idContaApagar INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  Conta_idConta INTEGER UNSIGNED NOT NULL,
  Funcionario_PessoaFisica_Pessoa_id INTEGER UNSIGNED NOT NULL,
  Funcionario_PessoaFisica_idPessoaFisica INTEGER UNSIGNED NOT NULL,
  emitente VARCHAR(40) NULL,
  PRIMARY KEY(idContaApagar),
  INDEX ContaApagar_FKIndex1(Conta_idConta),
  INDEX ContaApagar_FKIndex2(Funcionario_PessoaFisica_idPessoaFisica, Funcionario_PessoaFisica_Pessoa_id),
  FOREIGN KEY(Conta_idConta)
    REFERENCES Conta(idConta)
      ON DELETE CASCADE
      ON UPDATE NO ACTION,
  FOREIGN KEY(Funcionario_PessoaFisica_idPessoaFisica, Funcionario_PessoaFisica_Pessoa_id)
    REFERENCES Funcionario(PessoaFisica_idPessoaFisica, PessoaFisica_Pessoa_id)
      ON DELETE CASCADE
      ON UPDATE NO ACTION
);

CREATE TABLE Motorista (
  PessoaFisica_idPessoaFisica INTEGER UNSIGNED NOT NULL,
  PessoaFisica_Pessoa_id INTEGER UNSIGNED NOT NULL,
  CNH VARCHAR(14) NULL,
  categoriaCNH VARCHAR(5) NULL,
  nomePai VARCHAR(50) NULL,
  nomeMae VARCHAR(50) NULL,
  obs TEXT NULL,
  validadeCNH DATE NULL,
  referenciaPessoal VARCHAR(50) NULL,
  telefoneReferencia VARCHAR(20) NULL,
  celular VARCHAR(20) NULL,
  apelido VARCHAR(50) NULL,
  dataNascimento DATE NULL,
  PRIMARY KEY(PessoaFisica_idPessoaFisica, PessoaFisica_Pessoa_id),
  INDEX Motorista_FKIndex2(PessoaFisica_idPessoaFisica, PessoaFisica_Pessoa_id),
  FOREIGN KEY(PessoaFisica_idPessoaFisica, PessoaFisica_Pessoa_id)
    REFERENCES PessoaFisica(idPessoaFisica, Pessoa_id)
      ON DELETE CASCADE
      ON UPDATE NO ACTION
);

CREATE TABLE Parcela (
  idParcela INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  ContaApagar_Conta_idConta INTEGER UNSIGNED NOT NULL,
  ContaApagar_idContaApagar INTEGER UNSIGNED NOT NULL,
  vencimento DATE NULL,
  valor FLOAT NULL,
  numParcela INTEGER UNSIGNED NULL,
  PRIMARY KEY(idParcela),
  INDEX Parcela_FKIndex1(ContaApagar_idContaApagar, ContaApagar_Conta_idConta),
  FOREIGN KEY(ContaApagar_idContaApagar)
  REFERENCES ContaApagar(idContaApagar)
      ON DELETE CASCADE
      ON UPDATE NO ACTION,
  FOREIGN KEY(ContaApagar_Conta_idConta)
  REFERENCES Conta(idConta)
      ON DELETE CASCADE
      ON UPDATE NO ACTION
);

CREATE TABLE Seguro (
  idSeguro INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  Remetente INTEGER UNSIGNED NOT NULL,
  Destinatario INTEGER UNSIGNED NOT NULL,
  Motorista_PessoaFisica_Pessoa_id INTEGER UNSIGNED NOT NULL,
  Funcionario_PessoaFisica_Pessoa_id INTEGER UNSIGNED NOT NULL,
  Funcionario_PessoaFisica_idPessoaFisica INTEGER UNSIGNED NOT NULL,
  Motorista_PessoaFisica_idPessoaFisica INTEGER UNSIGNED NOT NULL,
  Veiculo_idVeiculo INTEGER UNSIGNED NOT NULL,
  Mercadoria_idMercadoria INTEGER UNSIGNED NOT NULL,
  valorSeguro FLOAT NULL,
  valorICMS FLOAT NULL,
  CTRC VARCHAR(15) NULL,
  outros FLOAT NULL,
  total FLOAT NULL,
  dataSeguro DATE NULL,
  strc VARCHAR(10) NULL,
  vendedor VARCHAR(40),
  PRIMARY KEY(idSeguro),
  INDEX Seguro_FKIndex1(Mercadoria_idMercadoria),
  INDEX Seguro_FKIndex2(Veiculo_idVeiculo),
  INDEX Seguro_FKIndex3(Funcionario_PessoaFisica_idPessoaFisica, Funcionario_PessoaFisica_Pessoa_id),
  INDEX Seguro_FKIndex4(Motorista_PessoaFisica_idPessoaFisica, Motorista_PessoaFisica_Pessoa_id),
  INDEX Seguro_FKIndex5(Destinatario),
  INDEX Seguro_FKIndex6(Remetente),
  FOREIGN KEY(Mercadoria_idMercadoria)
    REFERENCES Mercadoria(idMercadoria)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION,
  FOREIGN KEY(Funcionario_PessoaFisica_idPessoaFisica, Funcionario_PessoaFisica_Pessoa_id)
    REFERENCES Funcionario(PessoaFisica_idPessoaFisica, PessoaFisica_Pessoa_id)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION,
  FOREIGN KEY(Veiculo_idVeiculo)
    REFERENCES Veiculo(idVeiculo)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION,
  FOREIGN KEY(Motorista_PessoaFisica_idPessoaFisica, Motorista_PessoaFisica_Pessoa_id)
    REFERENCES Motorista(PessoaFisica_idPessoaFisica, PessoaFisica_Pessoa_id)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION,
  FOREIGN KEY(Destinatario)
    REFERENCES Cliente(idCliente)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION,
  FOREIGN KEY(Remetente)
    REFERENCES Cliente(idCliente)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
);

CREATE TABLE Comprovante (
  idComprovante INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  Seguro_idSeguro INTEGER UNSIGNED NOT NULL,
  dataComprovante DATE NULL,
  infoComplementares TEXT NULL,
  segurado VARCHAR(50) NULL,
  PRIMARY KEY(idComprovante, Seguro_idSeguro),
  INDEX Comprovante_FKIndex1(Seguro_idSeguro),
  FOREIGN KEY(Seguro_idSeguro)
    REFERENCES Seguro(idSeguro)
      ON DELETE CASCADE
      ON UPDATE NO ACTION
);

CREATE TABLE Cliente_has_Seguro (
  Seguro_idSeguro INTEGER UNSIGNED NOT NULL,
  Cliente_idCliente INTEGER UNSIGNED NOT NULL,
  valorFatura FLOAT NULL,
  valorJaPago FLOAT NULL,
  PRIMARY KEY(Seguro_idSeguro, Cliente_idCliente),
  INDEX Cliente_has_Seguro_FKIndex1(Seguro_idSeguro),
  INDEX Cliente_has_Seguro_FKIndex2(Cliente_idCliente),
  FOREIGN KEY(Cliente_idCliente)
    REFERENCES Cliente(idCliente)
      ON DELETE CASCADE
      ON UPDATE NO ACTION,
  FOREIGN KEY(Seguro_idSeguro)
    REFERENCES Seguro(idSeguro)
      ON DELETE CASCADE
      ON UPDATE NO ACTION
);

 CREATE  TABLE logSeguro (
  idlog INT NOT NULL AUTO_INCREMENT ,
  idSeguro INT NULL ,
  dataCadastro DATE NULL ,
  PRIMARY KEY (`idlog`) );
 -- ----------------------------------------------------------------------------------------------------
 -- ----------------------------------------------------------------------------------------------------
 -- ----------------------------------------------------------------------------------------------------
 -- ----------------------------------------------------------------------------------------------------

 DELIMITER $$
DROP PROCEDURE IF EXISTS `inserirMotorista` $$
CREATE PROCEDURE `inserirMotorista`(IN in_nome VARCHAR(50),IN in_telefone VARCHAR(20), IN in_endereco VARCHAR(40),
IN in_cep VARCHAR(12), IN in_numend VARCHAR(5), IN in_bairro VARCHAR(20), IN in_estado VARCHAR(2),
IN in_cidade VARCHAR(40), IN in_cpf VARCHAR(11),IN in_ufRg VARCHAR(2),IN in_rg VARCHAR(15),
IN in_orExrg VARCHAR (10), IN in_cnh VARCHAR(20),IN in_categoriaCNH VARCHAR(4),
IN in_nomePai VARCHAR(50), IN in_nomeMae CHAR(50), IN in_obs TEXT,IN in_validadeCNH VARCHAR(10),
IN in_referenciaPessoal VARCHAR(50), IN in_telefoneReferencia CHAR(20),
IN in_celular VARCHAR(20) , IN in_dataNascimento VARCHAR(10),IN in_apelido VARCHAR(50) ,OUT erro VARCHAR(255))

BLOCO1:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;
 -- caso exista algum erro, a variável excecao terá o valor 1

START TRANSACTION;
    INSERT INTO Pessoa(nome,telefone,endereco,CEP,numEnd,bairro,estado,cidade)
    VALUES(in_nome,in_telefone,in_endereco,in_cep,in_numend,in_bairro,in_estado,in_cidade);
    IF excecao =1 THEN
            SET erro = 'erro ao inserir na tabela Pessoa';
            ROLLBACK;
            LEAVE BLOCO1;
    END IF;
    SELECT DISTINCT LAST_INSERT_ID() INTO @Pessoaid FROM Pessoa;
    -- pega o ultimo id inserido pelo usuario
    INSERT INTO PessoaFisica(Pessoa_id,CPF,ufRG,RG,orgExRG)
    VALUES (@Pessoaid,in_cpf,in_ufRg,in_rg,in_orExrg);
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela PessoaFisica';
        ROLLBACK;
        LEAVE BLOCO1;
    END IF;
    SELECT DISTINCT LAST_INSERT_ID() INTO @PessoaFisicaid FROM PessoaFisica;
    -- pega o outro id da Pessoa fisica

    INSERT INTO Motorista(PessoaFisica_idPessoaFisica,PessoaFisica_Pessoa_id,CNH,
    categoriaCNH,nomePai,nomeMae,obs,validadeCNH,referenciaPessoal,telefoneReferencia,
    celular,dataNascimento,apelido)
    -- com todos os ids ele inseri o Motorista
    VALUES (@PessoaFisicaid,@Pessoaid,in_cnh,in_categoriaCNH,
    in_nomePai,in_nomeMae,in_obs,in_validadeCNH,in_referenciaPessoal,in_telefoneReferencia,in_celular,
    in_dataNascimento,in_apelido);
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela Motorista';
        ROLLBACK;
        LEAVE BLOCO1;
    ELSE
      SET erro = 'cadastro efetuado com sucesso';
      COMMIT; -- aqui eu salvo as minhas inserções e disponibilizo para os demais
   END IF;
END$$





DELIMITER ;

DELIMITER $$
DROP PROCEDURE IF EXISTS `inserirFuncionario` $$
CREATE PROCEDURE `inserirFuncionario`(IN in_nome VARCHAR(50),IN in_telefone VARCHAR(20), IN in_endereco VARCHAR(40),
IN in_cep VARCHAR(12), IN in_numend VARCHAR(5), IN in_bairro VARCHAR(20), IN in_estado VARCHAR(2),
IN in_cidade VARCHAR(40), IN in_cpf VARCHAR(15),IN in_ufRg VARCHAR(2),IN in_rg VARCHAR(15),IN in_orgExpRG VARCHAR(3),
IN in_login VARCHAR(15),IN in_senha VARCHAR(15), IN in_celular VARCHAR(20), IN in_dataNascimento VARCHAR(10), IN in_nivel INT, IN in_valorCaixa FLOAT,
OUT erro VARCHAR(50))

BLOCO2:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;
 -- caso exista algum erro, a variável excecao terá o valor 1

START TRANSACTION;
    INSERT INTO Pessoa(nome,telefone,endereco,CEP,numEnd,bairro,estado,cidade)
    VALUES(in_nome,in_telefone,in_endereco,in_cep,in_numend,in_bairro,in_estado,in_cidade);
    IF excecao =1 THEN
            SET erro = 'erro ao inserir na tabela Pessoa';
            ROLLBACK;
            LEAVE BLOCO2;
    END IF;
    SELECT DISTINCT LAST_INSERT_ID() INTO @Pessoaid FROM Pessoa;
    -- pega o ultimo id inserido pelo usuario
    INSERT INTO PessoaFisica(Pessoa_id,CPF,ufRG,RG,orgExRG)
    VALUES (@Pessoaid,in_cpf,in_ufRg,in_rg,in_orgExpRG);
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela PessoaFisica';
        ROLLBACK;
        LEAVE BLOCO2;
    END IF;
    SELECT DISTINCT LAST_INSERT_ID() INTO @PessoaFisicaid FROM PessoaFisica;
    -- pega o outro id da Pessoa fisica

    INSERT INTO Funcionario(PessoaFisica_idPessoaFisica,PessoaFisica_Pessoa_id,login,senha,
    celular,dataNascimento,nivelAcesso,valorCaixa)
    -- com todos os ids ele inseri o Funcionario
    VALUES (@PessoaFisicaid,@Pessoaid,in_login,in_senha,in_celular,in_dataNascimento,in_nivel,in_valorCaixa);
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela Funcionario';
        ROLLBACK;
        LEAVE BLOCO2;
    ELSE
      SET erro = 'cadastro efetuado com sucesso';
      COMMIT; -- aqui eu salvo as minhas inserções e disponibilizo para os demais
   END IF;
END$$

DELIMITER ;

DELIMITER $$
DROP PROCEDURE IF EXISTS `inserirClienteFisico` $$
CREATE PROCEDURE `inserirClienteFisico`(IN in_nome VARCHAR(50),IN in_telefone VARCHAR(20), IN in_endereco VARCHAR(40),
IN in_cep VARCHAR(15), IN in_numend VARCHAR(5), IN in_bairro VARCHAR(20), IN in_estado VARCHAR(2),
IN in_cidade VARCHAR(40), IN in_cpf VARCHAR(11),IN in_ufRg VARCHAR(2),IN in_rg VARCHAR(15),IN in_orgExpRG VARCHAR(3),
IN in_telFax VARCHAR(20), IN in_email VARCHAR(40),IN in_outrasInf TEXT, IN in_taxa FLOAT,IN in_valorFixo FLOAT,
IN in_desconto FLOAT,IN in_nomeFaturante VARCHAR(50), OUT erro VARCHAR(255))

BLOCO3:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;
 -- caso exista algum erro, a variável excecao terá o valor 1

START TRANSACTION;
    INSERT INTO Pessoa(nome,telefone,endereco,CEP,numEnd,bairro,estado,cidade)
    VALUES(in_nome,in_telefone,in_endereco,in_cep,in_numend,in_bairro,in_estado,in_cidade);
    IF excecao =1 THEN
            SET erro = 'erro ao inserir na tabela Pessoa';
            ROLLBACK;
            LEAVE BLOCO3;
    END IF;
    SELECT DISTINCT LAST_INSERT_ID() INTO @Pessoaid FROM Pessoa;
    -- pega o ultimo id inserido pelo usuario
    INSERT INTO PessoaFisica(Pessoa_id,CPF,ufRG,RG,orgExRG)
    VALUES (@Pessoaid,in_cpf,in_ufRg,in_rg,in_orgExpRG);
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela PessoaFisica';
        ROLLBACK;
        LEAVE BLOCO3;
    END IF;
    SELECT DISTINCT LAST_INSERT_ID() INTO @PessoaFisicaid FROM PessoaFisica;
    -- pega o outro id da Pessoa fisica

    INSERT INTO Cliente(telFax,email,outrasInf,taxa,valorFixo,desconto,nomeFaturante)
    VALUES(in_telFax,in_email,in_outrasInf,in_taxa,in_valorFixo,in_desconto,in_nomeFaturante);
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela Cliente';
        ROLLBACK;
        LEAVE BLOCO3;
    END IF;
     SELECT DISTINCT LAST_INSERT_ID() INTO @Clienteid FROM Cliente;

    INSERT INTO ClienteFisico(PessoaFisica_idPessoaFisica,PessoaFisica_Pessoa_id,Cliente_idCliente)
    VALUES (@PessoaFisicaid,@Pessoaid,@Clienteid);
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela Cliente fisico';
        ROLLBACK;
        LEAVE BLOCO3;
    ELSE
      SET erro = 'cadastro efetuado com sucesso';
      COMMIT; -- aqui eu salvo as minhas inserções e disponibilizo para os demais
   END IF;
END$$

DELIMITER ;


 DELIMITER $$
DROP PROCEDURE IF EXISTS `inserirClienteJuridico` $$
CREATE PROCEDURE `inserirClienteJuridico`(IN in_nome VARCHAR(50),IN in_telefone VARCHAR(20), IN in_endereco VARCHAR(40),
IN in_cep VARCHAR(12), IN in_numend VARCHAR(5), IN in_bairro VARCHAR(20), IN in_estado VARCHAR(2),
IN in_cidade VARCHAR(40), IN in_cnpj VARCHAR(20), IN in_IE VARCHAR(20), IN in_nomeFantasia VARCHAR(50), IN in_telFax VARCHAR(20),
IN in_email VARCHAR(50), IN in_outrasInf TEXT, IN in_taxa FLOAT, IN in_valorFixo FLOAT, IN in_desconto FLOAT,IN in_nomeFaturante VARCHAR(50), OUT erro VARCHAR(255))

BLOCO4:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;
 -- caso exista algum erro, a variável excecao terá o valor 1

START TRANSACTION;
    INSERT INTO Pessoa(nome,telefone,endereco,CEP,numEnd,bairro,estado,cidade)
    VALUES(in_nome,in_telefone,in_endereco,in_cep,in_numend,in_bairro,in_estado,in_cidade);
    IF excecao =1 THEN
            SET erro = 'erro ao inserir na tabela Pessoa';
            ROLLBACK;
            LEAVE BLOCO4;
    END IF;
    SELECT DISTINCT LAST_INSERT_ID() INTO @Pessoaid FROM Pessoa;

    INSERT INTO Cliente(telFax,email,outrasInf,taxa,valorFixo,desconto,nomeFaturante)
    VALUES(in_telFax,in_email,in_outrasInf,in_taxa,in_valorFixo,in_desconto,in_nomeFaturante);
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela Cliente';
        ROLLBACK;
        LEAVE BLOCO4;
    END IF;
     SELECT DISTINCT LAST_INSERT_ID() INTO @Clienteid FROM Cliente;

    INSERT INTO Juridico(Pessoa_id,Cliente_idCliente,CNPJ,inscriEstadual,nomeFantasia)
    VALUES(@Pessoaid,@Clienteid,in_cnpj,in_IE,in_nomeFantasia);
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela Cliente Juridico';
        ROLLBACK;
        LEAVE BLOCO4;
    ELSE
      SET erro = 'cadastro efetuado com sucesso';
      COMMIT; -- aqui eu salvo as minhas inserções e disponibilizo para os demais
   END IF;
END$$

DELIMITER ;

  DELIMITER $$
DROP PROCEDURE IF EXISTS `inserirContaPagar` $$
CREATE PROCEDURE `inserirContaPagar`(IN in_documento VARCHAR(40),IN in_emissao VARCHAR(15),
IN in_localCobranca VARCHAR(40), IN in_emitente VARCHAR(40), IN in_TipoConta VARCHAR(15),
IN in_Funcionario_PessoaFisica_Pessoa_id INT,IN in_Funcionario_PessoaFisica_idPessoaFisica INT,
OUT erro VARCHAR(255), OUT IDContaPagar INT, OUT IDConta INT)

BLOCO5:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;
 -- caso exista algum erro, a variável excecao terá o valor 1

START TRANSACTION;
    SELECT idtipo INTO @TipoContaid FROM TipoConta WHERE TipoConta like in_TipoConta;
    IF @TipoContaid IS NULL THEN
        SET erro='nao foi possivel encontrar o tipo de Conta';
        ROLLBACK;
        LEAVE BLOCO5;
    END IF;
    INSERT INTO Conta(TipoConta_idtipo,documento,emissao,localCobranca)
    VALUES(@TipoContaid,in_documento,in_emissao,in_localCobranca);
    IF excecao =1 THEN
        SET erro =  @TipoContaid;
        ROLLBACK;
        LEAVE BLOCO5;
    END IF;
     SELECT DISTINCT LAST_INSERT_ID() INTO @Contaid FROM Conta;
     SET IDConta = @Contaid;

    INSERT INTO ContaApagar(Conta_idConta,Funcionario_PessoaFisica_Pessoa_id,Funcionario_PessoaFisica_idPessoaFisica,emitente)
    VALUES(@Contaid,in_Funcionario_PessoaFisica_Pessoa_id,in_Funcionario_PessoaFisica_idPessoaFisica,in_emitente);
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela ContaApagar';
        ROLLBACK;
        LEAVE BLOCO5;
    ELSE
      SELECT DISTINCT LAST_INSERT_ID() INTO @Contapagarid FROM ContaApagar;
      SET IDContaPagar = @Contapagarid;
      SET erro = 'cadastro efetuado com sucesso';
      COMMIT; -- aqui eu salvo as minhas inserções e disponibilizo para os demais
   END IF;
END$$

DELIMITER ;

   DELIMITER $$
DROP PROCEDURE IF EXISTS `inserirParcela` $$
CREATE PROCEDURE `inserirParcela`(IN in_ContaApagar_Conta_idConta INT(10), IN in_ContaApagar_idContaApagar INT(10), IN in_vencimento DATE,
IN in_valor FLOAT, IN in_numParcela INT(10), OUT erro VARCHAR(255))

BLOCO6:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;
 -- caso exista algum erro, a variável excecao terá o valor 1

START TRANSACTION;
    INSERT INTO Parcela(ContaApagar_Conta_idConta,ContaApagar_idContaApagar,vencimento,valor,numParcela)
    VALUES(in_ContaApagar_Conta_idConta,in_ContaApagar_idContaApagar,in_vencimento,in_valor,in_numParcela);
    IF excecao =1 THEN
            SET erro = 'erro ao inserir na tabela Parcela';
            ROLLBACK;
            LEAVE BLOCO6;
    ELSE
      SET erro = 'cadastro efetuado com sucesso';
      COMMIT; -- aqui eu salvo as minhas inserções e disponibilizo para os demais
   END IF;
END$$

DELIMITER ;

-- --------------------------------------------------------------------------------
-- Routine DDL  Para Validar CPF
-- --------------------------------------------------------------------------------
DELIMITER $$

CREATE DEFINER=`root`@`localhost` FUNCTION `validarCpf`(CPF CHAR(11)) RETURNS double
BEGIN
    DECLARE INDICE INT;
    DECLARE SOMA INT;
    DECLARE DIG1 INT;
    DECLARE DIG2 INT;
    DECLARE CPF_TEMP VARCHAR(11);
    DECLARE DIGITOS_IGUAIS CHAR(1);
    DECLARE RESULTADO CHAR(1);

    SET RESULTADO = FALSE;


    -- Verificando se os dígitos são iguais
    -- A Principio CPF com todos o números iguais são Inválidos
    -- apesar de validar o Calculo do digito verificado
    -- EX: O CPF 00000000000 é inválido, mas pelo calculo Validaria


    SET CPF_TEMP = SUBSTRING(CPF,1,1);

    SET INDICE = 1;
    SET DIGITOS_IGUAIS = 'S';

    WHILE (INDICE <= 11) DO
        IF (SUBSTRING(CPF,INDICE,1) <> CPF_TEMP) Then
            SET DIGITOS_IGUAIS = 'N';
        END IF;
        SET INDICE = INDICE + 1;
    END WHILE;

    -- Caso os dígitos não sejam todos iguais Começo o calculo do dígitos
    IF (DIGITOS_IGUAIS = 'N') THEN
        -- Cálculo do 1º dígito
        SET SOMA = 0;
        SET INDICE = 1;
        WHILE (INDICE <= 9) DO
                SET Soma = Soma + CAST(SUBSTRING(CPF,INDICE,1) AS UNSIGNED) * (11 - INDICE);
                SET INDICE = INDICE + 1;
            END WHILE;
            SET DIG1 = 11 - (SOMA % 11);
            IF (DIG1 > 9) THEN
                SET DIG1 = 0;
        END IF;

        -- Cálculo do 2º dígito }
        SET SOMA = 0;
        SET INDICE = 1;
        WHILE (INDICE <= 10) DO
            SET Soma = Soma + CAST(SUBSTRING(CPF,INDICE,1) AS UNSIGNED) * (12 - INDICE);
            SET INDICE = INDICE + 1;
        END WHILE;
        SET DIG2 = 11 - (SOMA % 11);
        IF DIG2 > 9 THEN
            SET DIG2 = 0;
        END IF;

        -- Validando
        IF (DIG1 = SUBSTRING(CPF,LENGTH(CPF)-1,1)) AND (DIG2 = SUBSTRING(CPF,LENGTH(CPF),1)) THEN
            SET RESULTADO = TRUE;
        ELSE
            SET RESULTADO = FALSE;
        END IF;

    END IF;
    RETURN RESULTADO;
END$$

DELIMITER ;

-- --------------------------------------------------------------------------------
-- Routine DDL  Para Validar CNPJ
-- --------------------------------------------------------------------------------

DELIMITER $$

DROP FUNCTION IF EXISTS `validarCNPJ` $$
CREATE FUNCTION `fc_validarCNPJ`(CNPJ CHAR(20))
RETURNS int(11)
BEGIN
DECLARE _CNPJ varchar (14);
DECLARE _multiplicador_1 varchar(12);
DECLARE _multiplicador_2 varchar(13);

DECLARE _resultado int;
DECLARE _Contador int;

DECLARE _digito_1 int;
DECLARE _digito_2 int;

  DECLARE EXIT HANDLER FOR SQLEXCEPTION
      BEGIN
         RETURN 0;
      END;

SET _Contador = 1;
SET _resultado = 0;
SET _digito_1 = 0;
SET _digito_2 = 0;
SET _CNPJ = substring(CNPJ, 1, 12);

SET _multiplicador_1 = '543298765432';
SET _multiplicador_2 = '6543298765432';

  IF(CNPJ IS NULL) THEN
    RETURN NULL;
  END IF;

  IF(CHAR_LENGTH(CNPJ) != 14) THEN
    RETURN 0;
  END IF;

  WHILE(_Contador <= 12) DO
   SET _resultado = _resultado
  + CAST( substring(_CNPJ, _Contador, 1) AS UNSIGNED)
  * CAST( substring(_multiplicador_1, _Contador, 1) AS UNSIGNED);
   SET _Contador = _Contador + 1;
  END WHILE;

  SET _resultado = _resultado%11;

  IF (_resultado < 2)THEN
    SET _digito_1 = 0;
  ELSE
    SET _digito_1 = 11 - _resultado;
  END IF;

  SET _CNPJ = CONCAT( _CNPJ, _digito_1);
  SET _Contador = 1;
  SET _resultado = 0;

  WHILE(_Contador <= 13) DO
    SET _resultado = _resultado
  + CAST(substring(_CNPJ, _Contador, 1) AS UNSIGNED)
  * CAST(substring(_multiplicador_2, _Contador, 1) AS UNSIGNED);
    SET _Contador = _Contador + 1;
  END WHILE;

  SET _resultado = (_resultado%11);

  IF(_resultado < 2)THEN
    SET _digito_2 = 0;
  ELSE
    SET _digito_2 = 11 - _resultado;
  END IF;

  SET _CNPJ = CONCAT( _CNPJ , _digito_2);

  IF(substring(CNPJ, 13, 1) <> _digito_1)
  OR (substring(CNPJ, 14, 1) <> _digito_2) THEN
    RETURN 0;
  END IF;

RETURN 1;

END $$

DELIMITER ;

-- -----------------------------------------------------------------------------
--  ROUTINE PARA UPDATE NO Motorista
-- -----------------------------------------------------------------------------

  DELIMITER $$
DROP PROCEDURE IF EXISTS `alterarMotorista` $$
CREATE PROCEDURE `alterarMotorista`
(IN in_id INTEGER, IN in_nome VARCHAR(50),IN in_telefone VARCHAR(20), IN in_endereco VARCHAR(40),
IN in_cep VARCHAR(15), IN in_numend VARCHAR(5), IN in_bairro VARCHAR(20), IN in_estado VARCHAR(2),
IN in_cidade VARCHAR(40), IN in_cpf VARCHAR(11),IN in_ufRg VARCHAR(2),IN in_rg VARCHAR(15),
IN in_orExrg VARCHAR (10), IN in_cnh VARCHAR(20),IN in_categoriaCNH VARCHAR(4),
IN in_nomePai VARCHAR(50), IN in_nomeMae CHAR(50), IN in_obs TEXT,IN in_validadeCNH VARCHAR(10),
IN in_referenciaPessoal VARCHAR(50), IN in_telefoneReferencia CHAR(20),
IN in_celular VARCHAR(20) , IN in_dataNascimento VARCHAR(10),IN in_apelido VARCHAR(50) ,OUT erro VARCHAR(255))

BLOCO1:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;

START TRANSACTION;
    UPDATE Pessoa SET nome=in_nome,telefone=in_telefone,endereco=in_endereco,CEP=in_cep,
    numEnd=in_numend,bairro=in_bairro,estado=in_estado,cidade=in_cidade
    WHERE id = in_id;
    IF excecao =1 THEN
            SET erro = 'erro ao alterar a tabela Pessoa';
            ROLLBACK;
            LEAVE BLOCO1;
    END IF;
    UPDATE PessoaFisica SET CPF=in_cpf,ufRG=in_ufRg,RG=in_rg,orgExRG=in_orExrg
    WHERE Pessoa_id = in_id;
    IF excecao =1 THEN
        SET erro = 'erro ao alterar a tabela PessoaFisica';
        ROLLBACK;
        LEAVE BLOCO1;
    END IF;
    UPDATE Motorista SET CNH=in_cnh,
    categoriaCNH=in_categoriaCNH,nomePai=in_nomePai,nomeMae=in_nomeMae,
    obs=in_obs,validadeCNH=in_validadeCNH,referenciaPessoal=in_referenciaPessoal,
    telefoneReferencia=in_telefoneReferencia,celular=in_celular,dataNascimento=in_dataNascimento,apelido=in_apelido
    WHERE PessoaFisica_Pessoa_id = in_id AND PessoaFisica_idPessoaFisica > 0;
    IF excecao =1 THEN
        SET erro = 'erro ao alterar a tabela Motorista';
        ROLLBACK;
        LEAVE BLOCO1;
    ELSE
      SET erro = 'cadastro efetuado com sucesso';
      COMMIT;
   END IF;
END$$

DELIMITER ;




 -- ALTERAR ClienteS**************************************************
  DELIMITER $$
DROP PROCEDURE IF EXISTS `alterarClienteFisico` $$
CREATE PROCEDURE `alterarClienteFisico`(IN in_idPessoa INTEGER, IN in_idCliente INTEGER,IN in_nome VARCHAR(50),IN in_telefone VARCHAR(20), IN in_endereco VARCHAR(40),
IN in_cep VARCHAR(15), IN in_numend VARCHAR(5), IN in_bairro VARCHAR(20), IN in_estado VARCHAR(2),
IN in_cidade VARCHAR(40), IN in_cpf VARCHAR(15),IN in_ufRg VARCHAR(2),IN in_rg VARCHAR(15),IN in_orgExpRG VARCHAR(3),
IN in_telFax VARCHAR(20), IN in_email VARCHAR(40),IN in_outrasInf TEXT, IN in_taxa FLOAT,IN in_valorFixo FLOAT,
IN in_desconto FLOAT,IN in_nomeFaturante VARCHAR(50), OUT erro VARCHAR(255))

BLOCO3:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;
 -- caso exista algum erro, a variável excecao terá o valor 1

START TRANSACTION;
    UPDATE Pessoa SET nome=in_nome,telefone=in_telefone,endereco=in_endereco,CEP=in_cep,
    numEnd=in_numend,bairro=in_bairro,estado=in_estado,cidade=in_cidade
    WHERE id = in_idPessoa;
    IF excecao =1 THEN
            SET erro = 'erro ao inserir na tabela Pessoa';
            ROLLBACK;
            LEAVE BLOCO3;
    END IF;
    UPDATE Cliente SET telFax=in_telFax,email=in_email,outrasInf=in_outrasInf,
    taxa=in_taxa,valorFixo=in_valorFixo,desconto=in_desconto,nomeFaturante=in_nomeFaturante
    WHERE idCliente = in_idCliente;
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela PessoaFisica';
        ROLLBACK;
        LEAVE BLOCO3;
    ELSE
      SET erro = 'cadastro efetuado com sucesso';
      COMMIT; -- aqui eu salvo as minhas inserções e disponibilizo para os demais
   END IF;
END$$

DELIMITER ;


   DELIMITER $$
DROP PROCEDURE IF EXISTS `alterarClienteJuridico` $$
CREATE PROCEDURE `alterarClienteJuridico`(IN in_idPessoa INTEGER,IN in_idCliente INTEGER, IN in_nome VARCHAR(50),IN in_telefone VARCHAR(20), IN in_endereco VARCHAR(40),
IN in_cep VARCHAR(15), IN in_numend VARCHAR(5), IN in_bairro VARCHAR(20), IN in_estado VARCHAR(2),
IN in_cidade VARCHAR(40), IN in_cnpj VARCHAR(20), IN in_IE VARCHAR(20), IN in_nomeFantasia VARCHAR(50), IN in_telFax VARCHAR(20),
IN in_email VARCHAR(50), IN in_outrasInf TEXT, IN in_taxa FLOAT, IN in_valorFixo FLOAT, IN in_desconto FLOAT,IN in_nomeFaturante VARCHAR(50), OUT erro VARCHAR(255))

BLOCO4:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;
 -- caso exista algum erro, a variável excecao terá o valor 1

START TRANSACTION;
    UPDATE Pessoa SET nome=in_nome,telefone=in_telefone,endereco=in_endereco,CEP=in_cep,
    numEnd=in_numend,bairro=in_bairro,estado=in_estado,cidade=in_cidade
    WHERE id = in_idPessoa;
    IF excecao =1 THEN
            SET erro = 'erro ao inserir na tabela Pessoa';
            ROLLBACK;
            LEAVE BLOCO4;
    END IF;
    UPDATE Cliente SET telFax=in_telFax,email=in_email,outrasInf=in_outrasInf,
    taxa=in_taxa,valorFixo=in_valorFixo,desconto=in_desconto,nomeFaturante=in_nomeFaturante
    WHERE idCliente = in_idCliente;
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela Cliente';
        ROLLBACK;
        LEAVE BLOCO4;
    END IF;
    UPDATE Juridico SET CNPJ=in_cnpj,inscriEstadual=in_IE,
    nomeFantasia=in_nomeFantasia
    WHERE Pessoa_id = in_idPessoa AND Cliente_idCliente = in_idCliente;
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela Cliente Juridico';
        ROLLBACK;
        LEAVE BLOCO4;
    ELSE
      SET erro = 'cadastro efetuado com sucesso';
      COMMIT; -- aqui eu salvo as minhas inserções e disponibilizo para os demais
   END IF;
END$$

DELIMITER ;



 -- **********ALTERAR Funcionario

DELIMITER $$
DROP PROCEDURE IF EXISTS `alterarFuncionario` $$
CREATE PROCEDURE `alterarFuncionario`(IN in_id INTEGER,IN in_nome VARCHAR(50),IN in_telefone VARCHAR(20), IN in_endereco VARCHAR(40),
IN in_cep VARCHAR(15), IN in_numend VARCHAR(5), IN in_bairro VARCHAR(20), IN in_estado VARCHAR(2),
IN in_cidade VARCHAR(40), IN in_cpf VARCHAR(15),IN in_ufRg VARCHAR(2),IN in_rg VARCHAR(15),IN in_orgExpRG VARCHAR(3),
IN in_login VARCHAR(15),IN in_senha VARCHAR(15), IN in_celular VARCHAR(20), IN in_dataNascimento VARCHAR(10), IN in_nivel INT, IN in_valorCaixa FLOAT,
OUT erro VARCHAR(50))
BLOCO2:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;
 -- caso exista algum erro, a variável excecao terá o valor 1

START TRANSACTION;
    UPDATE Pessoa SET nome=in_nome,telefone=in_telefone,endereco=in_endereco,CEP=in_cep,
    numEnd=in_numend,bairro=in_bairro,estado=in_estado,cidade=in_cidade
    WHERE id = in_id;
    IF excecao =1 THEN
            SET erro = 'erro ao inserir na tabela Pessoa';
            ROLLBACK;
            LEAVE BLOCO2;
    END IF;
    UPDATE PessoaFisica SET CPF=in_cpf,ufRG=in_ufRg,RG=in_rg,orgExRG=in_orgExpRG
    WHERE Pessoa_id = in_id;
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela PessoaFisica';
        ROLLBACK;
        LEAVE BLOCO2;
    END IF;
    UPDATE Funcionario SET login=in_login,senha=in_senha,
    celular=in_celular,dataNascimento=in_dataNascimento,nivelAcesso=in_nivel,valorCaixa=in_valorCaixa 
    WHERE PessoaFisica_Pessoa_id = in_id AND PessoaFisica_idPessoaFisica > 0;
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela Funcionario';
        ROLLBACK;
        LEAVE BLOCO2;
    ELSE
      SET erro = 'cadastro efetuado com sucesso';
      COMMIT; -- aqui eu salvo as minhas inserções e disponibilizo para os demais
   END IF;
END $$

DELIMITER ;

  -- **********ALTERAR ContaS A PAGAR

DELIMITER $$
DROP PROCEDURE IF EXISTS `alterarContaPagar` $$
CREATE PROCEDURE `alterarContaPagar`(IN in_idConta INT(10),IN in_documento VARCHAR(40),IN in_emissao DATE,
IN in_idtipo INT(10), IN in_localCobranca VARCHAR(40), IN in_emitente VARCHAR(40),
IN in_TipoConta VARCHAR(15), IN in_Funcionario_PessoaFisica_Pessoa_id INT(10),
IN in_Funcionario_PessoaFisica_idPessoaFisica INT(10), OUT erro VARCHAR(255))
BLOCO3:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;
 -- caso exista algum erro, a variável excecao terá o valor 1

START TRANSACTION;
    SELECT idtipo INTO @TipoContaid FROM TipoConta WHERE TipoConta like in_TipoConta;
    UPDATE TipoConta SET TipoConta=in_TipoConta
    WHERE idtipo = @TipoContaid;
    IF excecao =1 THEN
            SET erro = 'erro ao alterar na tabela TipoConta';
            ROLLBACK;
            LEAVE BLOCO3;
    END IF;
    UPDATE Conta SET TipoConta_idtipo=in_idtipo,documento=in_documento,emissao=in_emissao,localCobranca = in_localCobranca
    WHERE idConta = in_idConta;
    IF excecao =1 THEN
        SET erro = 'erro ao alterar na tabela Conta';
        ROLLBACK;
        LEAVE BLOCO3;
    END IF;
    UPDATE ContaApagar SET Funcionario_PessoaFisica_Pessoa_id=in_Funcionario_PessoaFisica_Pessoa_id,
           Funcionario_PessoaFisica_idPessoaFisica=in_Funcionario_PessoaFisica_idPessoaFisica,
           emitente=in_emitente
    WHERE Conta_idConta = in_idConta;
    IF excecao =1 THEN
        SET erro = 'erro ao alterar na tabela ContaApagar';
        ROLLBACK;
        LEAVE BLOCO3;
    ELSE
      SET erro = 'cadastro efetuado com sucesso';
      COMMIT; -- aqui eu salvo as minhas inserções e disponibilizo para os demais
   END IF;
END $$

DELIMITER ;

    -- **********ALTERAR ParcelaS

DELIMITER $$
DROP PROCEDURE IF EXISTS `alterarParcela` $$
CREATE PROCEDURE `alterarParcela`(IN in_idParcela INT(10), IN in_Conta_idConta INT(10),IN in_idContaPagar INT,IN in_vencimento DATE,
IN in_valor FLOAT, IN in_numParcela INT(10), OUT erro VARCHAR(255))
BLOCO4:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;
 -- caso exista algum erro, a variável excecao terá o valor 1

START TRANSACTION;
    UPDATE Parcela SET ContaApagar_Conta_idConta=in_Conta_idConta,
    ContaApagar_idContaApagar=in_idContaPagar,
    vencimento=in_vencimento,
    valor=in_valor,
    numParcela=in_numParcela
    WHERE idParcela = in_idParcela;
    IF excecao =1 THEN
            SET erro = 'erro ao alterar na tabela Parcela';
            ROLLBACK;
            LEAVE BLOCO4;
    ELSE
      SET erro = 'cadastro efetuado com sucesso';
      COMMIT; -- aqui eu salvo as minhas inserções e disponibilizo para os demais
   END IF;
END $$

DELIMITER ;


--Comprovante
 DELIMITER $$
DROP PROCEDURE IF EXISTS `inserirComprovante` $$
CREATE PROCEDURE `inserirComprovante`
(IN in_idSeguro INTEGER, IN in_data VARCHAR(10), IN in_info TEXT,
IN in_segurado INTEGER, OUT erro VARCHAR(255))

BLOCO1:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;

START TRANSACTION;
    INSERT INTO Comprovante(Seguro_idSeguro,dataComprovante,infoComplementar,
    segurado)
    VALUES (in_idSeguro,in_data,in_info,segurado);
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela Comprovante';
        ROLLBACK;
        LEAVE BLOCO1;
    ELSE
      SET erro = 'cadastro efetuado com sucesso';
      COMMIT;
   END IF;
END$$

DELIMITER ;

 -- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: comments before and after the routine body will not be stored by the server
-- --------------------------------------------------------------------------------
DELIMITER $$
DROP PROCEDURE IF EXISTS `alterarComprovante` $$
CREATE PROCEDURE `alterarComprovante`(IN in_id INTEGER, IN in_data VARCHAR(10), IN in_info TEXT,
IN in_segurado INTEGER, OUT erro VARCHAR(255))
BLOCO1:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;

START TRANSACTION;
    UPDATE Comprovante SET dataComprovante = in_data,
    infoComplementar = in_info, segurado = in_segurado
    WHERE idComprovante = in_id AND Seguro_idSeguro > 0;
    IF excecao =1 THEN
        SET erro = 'erro ao inserir na tabela Comprovante';
        ROLLBACK;
        LEAVE BLOCO1;
    ELSE
      SET erro = 'cadastro efetuado com sucesso';
      COMMIT;
   END IF;
END $$
DELIMITER ;

-- --------------------------------------------------------------------------------
-- Routine DDL
-- Note: INSERIR SeguroS
-- --------------------------------------------------------------------------------
 DELIMITER $$
DROP PROCEDURE IF EXISTS `cadastroSeguro` $$
CREATE PROCEDURE `cadastroSeguro`(IN in_remetente INTEGER,IN in_destinatario INTEGER,IN in_MotoristaPF INTEGER, IN in_MotoristaP INTEGER, IN in_FuncionarioPF INTEGER,
IN in_FuncionarioP INTEGER,IN in_idVeiculo INTEGER,IN in_valorSeguro FLOAT,IN in_valorICMS FLOAT,IN in_CTRC VARCHAR(12),IN in_outros FLOAT,IN in_total FLOAT,IN in_dataSeguro VARCHAR(12),
IN in_strc VARCHAR(12),IN inTipo VARCHAR(15),IN in_naturezaCarga VARCHAR(40),IN in_peso FLOAT,IN in_quantidade INTEGER,IN in_notaFiscal VARCHAR(20),
IN in_especie VARCHAR(25), IN in_valorMercadoria FLOAT, OUT erro VARCHAR(255), OUT out_idSeguro INT,IN in_vendedor VARCHAR(40))

BLOCO3:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;
-- caso exista algum erro, a variável excecao terá o valor 1

START TRANSACTION;
    SELECT idTipo INTO @tipo FROM TipoMercadoria WHERE nome= inTipo;
    INSERT INTO Mercadoria (TipoMercadoria_idTipo,naturezaCarga,peso,quantidade,notaFiscal,especie,valorMercadoria)
    VALUES (@tipo,in_naturezaCarga,in_peso,in_quantidade,in_notaFiscal,in_especie,in_valorMercadoria);
    IF excecao =1 THEN
            SET erro = 'erro ao inserir na tabela Mercadoria';
            ROLLBACK;
            LEAVE BLOCO3;
    END IF;
    SELECT DISTINCT LAST_INSERT_ID() INTO @Mercadoriaid FROM Mercadoria;
    INSERT INTO Seguro(Remetente,Destinatario,Motorista_PessoaFisica_Pessoa_id,Funcionario_PessoaFisica_Pessoa_id,
    Funcionario_PessoaFisica_idPessoaFisica,Motorista_PessoaFisica_idPessoaFisica,Veiculo_idVeiculo,Mercadoria_idMercadoria,
    valorSeguro,valorICMS,CTRC,outros,total,dataSeguro,strc,in_vendedor)
    VALUES(in_remetente,in_destinatario,in_MotoristaP,in_FuncionarioP,in_FuncionarioPF,in_MotoristaPF,in_idVeiculo,@Mercadoriaid,
    in_valorSeguro,in_valorICMS,in_CTRC,in_outros,in_total,in_dataSeguro,in_strc,in_vendedor);
    IF excecao =1 THEN
        SET erro = 'erro ao alterar na tabela Seguro';
        ROLLBACK;
        LEAVE BLOCO3;
    ELSE
      SET erro = 'cadastro efetuado com sucesso';
      SELECT DISTINCT LAST_INSERT_ID() INTO out_idSeguro FROM Seguro;
      COMMIT; -- aqui eu salvo as minhas inserções e disponibilizo para os demais
   END IF;
END $$

DELIMITER ;

 DELIMITER $$
DROP PROCEDURE IF EXISTS `alterarSeguro` $$
CREATE PROCEDURE `alterarSeguro`(IN in_remetente INTEGER,IN in_destinatario INTEGER,IN in_MotoristaPF INTEGER, IN in_MotoristaP INTEGER, IN in_FuncionarioPF INTEGER,
IN in_FuncionarioP INTEGER,IN in_idVeiculo INTEGER,IN in_valorSeguro FLOAT,IN in_valorICMS FLOAT,IN in_CTRC VARCHAR(12),IN in_outros FLOAT,IN in_total FLOAT,IN in_dataSeguro VARCHAR(12),
IN in_strc VARCHAR(12),IN inTipo VARCHAR(15),IN in_naturezaCarga VARCHAR(40),IN in_peso FLOAT,IN in_quantidade INTEGER,IN in_notaFiscal VARCHAR(20),
IN in_especie VARCHAR(25), IN in_valorMercadoria FLOAT,IN in_idMercadoria INT, IN in_idSeguro INT, IN in_idCliente INT, IN in_valorJaPago FLOAT, IN in_valorAPagar FLOAT, OUT erro VARCHAR(255),IN in_vendedor VARCHAR(40))

BLOCO3:BEGIN
DECLARE excecao SMALLINT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excecao = 1;
-- caso exista algum erro, a variável excecao terá o valor 1

START TRANSACTION;
    SELECT idTipo INTO @tipo FROM TipoMercadoria WHERE nome= inTipo;
    UPDATE Mercadoria  SET TipoMercadoria_idTipo=@tipo,
       naturezaCarga=in_naturezaCarga,
       peso=in_peso,
       quantidade=in_quantidade,
       notaFiscal=in_notaFiscal,
       especie=in_especie,
       valorMercadoria=in_valorMercadoria
       WHERE idMercadoria = in_idMercadoria AND in_idMercadoria > 0;
    IF excecao =1 THEN
            SET erro = 'erro ao alterar na tabela Mercadoria';
            ROLLBACK;
            LEAVE BLOCO3;
    END IF;

    UPDATE Seguro SET Remetente=in_remetente,
       Destinatario=in_destinatario,
       Motorista_PessoaFisica_Pessoa_id=in_MotoristaP,
       Funcionario_PessoaFisica_Pessoa_id=in_FuncionarioP,
       Funcionario_PessoaFisica_idPessoaFisica=in_FuncionarioPF,
       Motorista_PessoaFisica_idPessoaFisica=in_MotoristaPF,
       Veiculo_idVeiculo=in_idVeiculo,
       Mercadoria_idMercadoria=in_idMercadoria,
       valorSeguro=in_valorSeguro,
       valorICMS=in_valorICMS,
       CTRC=in_CTRC,
       outros=in_outros,
       total=in_total,
       dataSeguro=in_dataSeguro,
       strc=in_strc,
       vendedor = in_vendedor
       WHERE idSeguro = in_idSeguro AND in_idSeguro>0;
    IF excecao =1 THEN
        SET erro = 'erro ao alterar na tabela Seguro';
        ROLLBACK;
        LEAVE BLOCO3;
    END IF;

   UPDATE Cliente_has_Seguro SET Cliente_idCliente=in_idCliente,
   valorFatura=in_valorAPagar,
   valorJaPago=in_valorJaPago,
   Seguro_idSeguro=in_idSeguro
   WHERE Seguro_idSeguro=in_idSeguro AND Cliente_idCliente=in_idCliente AND (in_idSeguro>0 AND in_idCliente>0);
   IF excecao =1 THEN
      SET erro = 'erro ao alterar na tabela Cliente has Seguro';
      ROLLBACK;
      LEAVE BLOCO3;
   ELSE
     SET erro = 'alteracao realizada';
     COMMIT; -- aqui eu salvo as minhas inserções e disponibilizo para os demais
   END IF;
END $$

DELIMITER ;


 -- INSERIR TIPOS MercadoriaS

  INSERT INTO TipoMercadoria(nome) VALUES('ALHO');
  INSERT INTO TipoMercadoria(nome) VALUES('ABACATE');
  INSERT INTO TipoMercadoria(nome) VALUES('SOJA');
  INSERT INTO TipoMercadoria(nome) VALUES('CENOURA');
  INSERT INTO TipoMercadoria(nome) VALUES('FEIJÃO');
  INSERT INTO TipoMercadoria(nome) VALUES('BATATA');

-- INSERIR TIPO DE ContaS

  INSERT INTO TipoConta(TipoConta) VALUES('AGUA');
  INSERT INTO TipoConta(TipoConta) VALUES('LUZ');
  INSERT INTO TipoConta(TipoConta) VALUES('TELEFONE');
  INSERT INTO TipoConta(TipoConta) VALUES('COMBUSTIVEL');
  INSERT INTO TipoConta(TipoConta) VALUES('LIMPEZA');
  INSERT INTO TipoConta(TipoConta) VALUES('COMPRAS');
  INSERT INTO TipoConta(TipoConta) VALUES('DESPEZAS');

 -- INSERIR RTC PRONTO
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','AC',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','AC',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','AC',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','AC',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','AC',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','AC',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','AC',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','AC',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','AC',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','AC',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','AC',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','AC',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','AC',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','AC',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','AC',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','AC',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','AC',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','AC',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','AC',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','AC',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','AC',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','AC',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','AC',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','AC',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','AC',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','AC',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','AC',0.23);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','AL',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','AL',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','AL',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','AL',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','AL',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','AL',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','AL',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','AL',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','AL',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','AL',0.10);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','AL',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','AL',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','AL',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','AL',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','AL',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','AL',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','AL',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','AL',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','AL',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','AL',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','AL',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','AL',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','AL',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','AL',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','AL',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','AL',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','AL',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','AP',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','AP',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','AP',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','AP',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','AP',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','AP',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','AP',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','AP',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','AP',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','AP',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','AP',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','AP',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','AP',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','AP',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','AP',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','AP',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','AP',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','AP',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','AP',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','AP',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','AP',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','AP',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','AP',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','AP',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','AP',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','AP',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','AP',0.13);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','AM',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','AM',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','AM',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','AM',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','AM',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','AM',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','AM',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','AM',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','AM',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','AM',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','AM',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','AM',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','AM',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','AM',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','AM',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','AM',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','AM',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','AM',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','AM',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','AM',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','AM',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','AM',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','AM',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','AM',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','AM',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','AM',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','AM',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','BA',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','BA',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','BA',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','BA',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','BA',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','BA',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','BA',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','BA',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','BA',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','BA',0.10);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','BA',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','BA',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','BA',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','BA',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','BA',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','BA',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','BA',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','BA',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','BA',0.10);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','BA',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','BA',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','BA',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','BA',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','BA',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','BA',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','BA',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','BA',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','CE',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','CE',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','CE',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','CE',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','CE',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','CE',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','CE',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','CE',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','CE',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','CE',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','CE',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','CE',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','CE',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','CE',0.10);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','CE',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','CE',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','CE',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','CE',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','CE',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','CE',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','CE',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','CE',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','CE',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','CE',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','CE',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','CE',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','CE',0.13);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','DF',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','DF',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','DF',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','DF',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','DF',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','DF',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','DF',0.03);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','DF',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','DF',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','DF',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','DF',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','DF',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','DF',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','DF',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','DF',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','DF',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','DF',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','DF',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','DF',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','DF',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','DF',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','DF',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','DF',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','DF',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','DF',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','DF',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','DF',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','ES',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','ES',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','ES',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','ES',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','ES',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','ES',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','ES',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','ES',0.03);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','ES',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','ES',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','ES',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','ES',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','ES',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','ES',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','ES',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','ES',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','ES',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','ES',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','ES',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','ES',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','ES',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','ES',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','ES',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','ES',0.10);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','ES',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','ES',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','ES',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','GO',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','GO',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','GO',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','GO',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','GO',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','GO',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','GO',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','GO',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','GO',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','GO',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','GO',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','GO',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','GO',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','GO',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','GO',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','GO',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','GO',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','GO',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','GO',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','GO',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','GO',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','GO',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','GO',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','GO',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','GO',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','GO',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','GO',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','MA',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','MA',0.10);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','MA',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','MA',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','MA',0.10);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','MA',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','MA',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','MA',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','MA',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','MA',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','MA',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','MA',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','MA',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','MA',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','MA',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','MA',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','MA',0.10);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','MA',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','MA',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','MA',0.10);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','MA',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','MA',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','MA',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','MA',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','MA',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','MA',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','MA',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','MT',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','MT',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','MT',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','MT',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','MT',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','MT',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','MT',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','MT',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','MT',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','MT',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','MT',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','MT',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','MT',0.10);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','MT',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','MT',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','MT',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','MT',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','MT',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','MT',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','MT',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','MT',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','MT',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','MT',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','MT',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','MT',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','MT',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','MT',0.10);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','MS',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','MS',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','MS',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','MS',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','MS',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','MS',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','MS',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','MS',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','MS',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','MS',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','MS',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','MS',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','MS',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','MS',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','MS',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','MS',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','MS',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','MS',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','MS',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','MS',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','MS',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','MS',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','MS',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','MS',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','MS',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','MS',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','MS',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','MG',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','MG',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','MG',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','MG',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','MG',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','MG',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','MG',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','MG',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','MG',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','MG',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','MG',0.10);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','MG',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','MG',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','MG',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','MG',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','MG',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','MG',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','MG',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','MG',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','MG',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','MG',0.10);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','MG',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','MG',0.30);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','MG',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','MG',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','MG',0.10);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','MG',0.13);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','PA',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','PA',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','PA',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','PA',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','PA',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','PA',0.10);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','PA',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','PA',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','PA',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','PA',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','PA',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','PA',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','PA',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','PA',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','PA',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','PA',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','PA',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','PA',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','PA',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','PA',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','PA',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','PA',0.20);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','PA',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','PA',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','PA',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','PA',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','PA',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','PB',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','PB',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','PB',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','PB',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','PB',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','PB',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','PB',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','PB',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','PB',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','PB',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','PB',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','PB',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','PB',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','PB',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','PB',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','PB',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','PB',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','PB',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','PB',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','PB',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','PB',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','PB',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','PB',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','PB',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','PB',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','PB',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','PB',0.13);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','PR',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','PR',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','PR',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','PR',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','PR',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','PR',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','PR',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','PR',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','PR',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','PR',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','PR',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','PR',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','PR',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','PR',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','PR',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','PR',0.03);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','PR',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','PR',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','PR',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','PR',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','PR',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','PR',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','PR',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','PR',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','PR',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','PR',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','PR',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','PE',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','PE',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','PE',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','PE',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','PE',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','PE',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','PE',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','PE',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','PE',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','PE',0.1);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','PE',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','PE',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','PE',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','PE',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','PE',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','PE',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','PE',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','PE',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','PE',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','PE',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','PE',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','PE',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','PE',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','PE',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','PE',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','PE',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','PE',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','PI',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','PI',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','PI',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','PI',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','PI',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','PI',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','PI',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','PI',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','PI',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','PI',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','PI',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','PI',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','PI',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','PI',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','PI',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','PI',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','PI',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','PI',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','PI',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','PI',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','PI',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','PI',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','PI',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','PI',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','PI',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','PI',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','PI',0.1);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','RJ',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','RJ',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','RJ',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','RJ',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','RJ',0.1);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','RJ',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','RJ',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','RJ',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','RJ',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','RJ',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','RJ',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','RJ',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','RJ',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','RJ',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','RJ',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','RJ',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','RJ',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','RJ',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','RJ',0.02);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','RJ',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','RJ',0.1);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','RJ',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','RJ',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','RJ',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','RJ',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','RJ',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','RJ',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','RN',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','RN',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','RN',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','RN',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','RN',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','RN',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','RN',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','RN',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','RN',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','RN',0.1);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','RN',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','RN',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','RN',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','RN',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','RN',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','RN',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','RN',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','RN',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','RN',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','RN',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','RN',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','RN',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','RN',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','RN',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','RN',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','RN',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','RN',0.13);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','RS',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','RS',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','RS',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','RS',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','RS',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','RS',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','RS',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','RS',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','RS',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','RS',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','RS',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','RS',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','RS',0.1);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','RS',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','RS',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','RS',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','RS',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','RS',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','RS',0.1);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','RS',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','RS',0.03);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','RS',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','RS',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','RS',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','RS',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','RS',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','RS',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','RO',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','RO',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','RO',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','RO',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','RO',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','RO',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','RO',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','RO',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','RO',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','RO',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','RO',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','RO',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','RO',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','RO',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','RO',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','RO',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','RO',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','RO',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','RO',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','RO',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','RO',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','RO',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','RO',0.1);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','RO',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','RO',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','RO',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','RO',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','RR',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','RR',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','RR',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','RR',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','RR',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','RR',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','RR',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','RR',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','RR',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','RR',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','RR',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','RR',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','RR',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','RR',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','RR',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','RR',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','RR',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','RR',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','RR',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','RR',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','RR',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','RR',0.1);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','RR',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','RR',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','RR',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','RR',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','RR',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','SC',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','SC',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','SC',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','SC',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','SC',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','SC',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','SC',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','SC',0.1);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','SC',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','SC',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','SC',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','SC',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','SC',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','SC',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','SC',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','SC',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','SC',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','SC',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','SC',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','SC',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','SC',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','SC',0.22);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','SC',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','SC',0.03);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','SC',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','SC',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','SC',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','SP',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','SP',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','SP',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','SP',0.26);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','SP',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','SP',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','SP',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','SP',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','SP',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','SP',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','SP',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','SP',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','SP',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','SP',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','SP',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','SP',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','SP',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','SP',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','SP',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','SP',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','SP',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','SP',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','SP',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','SP',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','SP',0.02);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','SP',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','SP',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','SE',0.3);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','SE',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','SE',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','SE',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','SE',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','SE',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','SE',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','SE',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','SE',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','SE',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','SE',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','SE',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','SE',0.1);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','SE',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','SE',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','SE',0.16);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','SE',0.05);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','SE',0.09);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','SE',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','SE',0.06);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','SE',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','SE',0.28);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','SE',0.32);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','SE',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','SE',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','SE',0.04);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','SE',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AC','TO',0.23);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AL','TO',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AP','TO',0.13);
INSERT INTO RTCF(destino,origem,taxa) VALUES('AM','TO',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('BA','TO',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('CE','TO',0.13);
INSERT INTO RTCF(destino,origem,taxa) VALUES('DF','TO',0.07);
INSERT INTO RTCF(destino,origem,taxa) VALUES('ES','TO',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('GO','TO',0.08);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MA','TO',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MT','TO',0.1);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MS','TO',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('MG','TO',0.13);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PA','TO',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PB','TO',0.13);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PR','TO',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PE','TO',0.12);
INSERT INTO RTCF(destino,origem,taxa) VALUES('PI','TO',0.1);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RJ','TO',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RN','TO',0.13);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RS','TO',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RO','TO',0.2);
INSERT INTO RTCF(destino,origem,taxa) VALUES('RR','TO',0.24);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SC','TO',0.18);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SP','TO',0.14);
INSERT INTO RTCF(destino,origem,taxa) VALUES('SE','TO',0.11);
INSERT INTO RTCF(destino,origem,taxa) VALUES('TO','TO',0.06);

-- Garantir privilegio para acesso remoto
grant all privileges on speed.* to root@`%` identified by '3edc4rfv'; 
 
 
call inserirFuncionario('Admin','', 'Administrador do sistema','', '', '', '','', '','','','',
'admin','admin','(34) 9984-3046', '2011/08/08',1,0.0,@erro);


-- TRIGER PARA LOG SEGUROS
 /*
 CREATE   TRIGGER `segDia`
    AFTER INSERT ON `speed`.`Cliente_has_Seguro`
    FOR EACH ROW
    BEGIN
           insert into logSeguro(idSeguro,dataCadastro)
           values(new.Seguro_idSeguro, NOW());
    END 
*/